#ifndef PSO_H_INCLUDED
#define PSO_H_INCLUDED
#include "repositorio.h"

//double* distance(CLASSIFICADOR* position, double** bary, int tamanhoCascata, int qtdElementos);
double calculaFitness(PARTICULA* particle, int tamanhoCascata, IMAGEM* bancoPos, int qtdPos, IMAGEM* bancoNeg, int qtdNeg);
void validatePosition(int* pos, int posMin, int posMax);
double moveIndividual(PARTICULA* particle, double step, int tamanhoCascata, CLASSIFICADOR* deltaPosition, int qtdTipoFeature, int largura, int altura,
                      IMAGEM* bancoPos, int qtdPos, IMAGEM* bancoNeg, int qtdNeg);

PARTICULA otimizar(PARTICULA* particulas, int qtdParticulas, int tamanhoCascata, int qtdTipoFeature,
                        IMAGEM* bancoPos, int qtdPos, IMAGEM* bancoNeg, int qtdNeg,
                        IMAGEM* bancoPosValid, int qtdPosValid, IMAGEM* bancoNegValid,int qtdNegValid,
                        int largura, int altura, double taxaAcertoMin, double taxaFalsoPosMax, FILE* file);

#endif // PSO_H_INCLUDED
